Apparatus and related method for data transmission across a wireless network

ABSTRACT

The present invention provides for a transmitting means for transmitting data packets in a wireless network, wherein at least some of the data packets are arranged to include clock data for use at a receiving means in the network for clock reconstruction at the receiving means, the transmitting means including processing means and operating system means connected to a network controller for delivering the data packets to the network, wherein the transmitting means is arranged to identify packets arriving at the network controller and which require clock data, and wherein the network controller is arranged to insert the clock data within the said identified packet prior to transmission of the packet. Also provided is a system and method of synchronising the clock of a receiving means to a clock signal from a transmitting means in a wireless network, wherein the clock at the receiving means is reconstructed from a data packet delivered from the transmitting means and including the step of monitoring acknowledgement of receipt of the packet at the receiving means, and resending the said packet if receipt is not acknowledged, and including the step of inserting updated clock reference data in the packet prior to resending the packet.

The present invention relates to a method and related apparatus for thetransmission of data across a wireless network and in particular, butnot exclusively, to a method and apparatus for streaming real-time audioand video content across a wireless network link.

Communication systems are being developed which seek to stream real-timeaudio and video data across standardised wireless network links. Howeverit has been identified that problems arise relating to thesynchronisation of the audio/video data content at a client terminalwhen seeking to output and display the content at exactly the same rateas it was originally produced.

While systems employing standard set-top boxes can readily employ asynchronisation clock taken directly from the incoming transport stream,a client terminal that is connected to a server merely by way of astandardised wireless network does not have accurate access to thisclock. The incoming transport stream arriving at such set-top boxescomprises a highly stable signal produced by a broadcaster for aclient/server wireless network infrastructure, accurate access to thisclock cannot be achieved due to jitter inherent in the wireless networkand also due to latency arising within the networking software of thesystem. As such, high-level software is arranged to insert a clockreference into a packet to be sent through the network, a highlyvariable delay between when the clock reference is inserted and when thepacket is sent, and when the software at the client device will actuallyretrieve the clock reference in the packet will be experienced.

Published patent application US 2002/0031196 discloses aclock-regeneration system in which a server is arranged to transmit asmall packet at regular intervals, and which seeks to describe clockdata for subsequent use in achieving synchronisation at a client device.However, the manner in which the containing the clock data packets arecreated and sent is disadvantageously limited, and the system itselfalso has disadvantages particularly if packet-delivery failure occurs.

The present invention seeks to provide for an apparatus and relatedmethod which can be used for the accurate synchronisation of, forexample, audio and video data transmitted from a server across astandard wireless network link to one or more client devices.

According to one aspect of the present invention there is providedtransmitting means for transmitting data packets in a wireless network,wherein at least some of the data packets are arranged to include clockdata for use at a receiving means in the network for clockreconstruction at the receiving means, the transmitting means includingprocessing means and operating system means connected to a networkcontroller for delivering the data packets to the network, wherein thetransmitting means is arranged to identify packets arriving at thenetwork controller and which require clock data, and wherein the networkcontroller is arranged to insert the clock data within the saididentified packet prior to transmission of the packet.

The invention is advantageous in that through the adaptation of thewireless network control in the above-mentioned manner, the clock dataheld within the packet being transmitted is found to be very close tothe running clock in the transmitting means.

The feature of claim 2 is particularly advantageous in allowing foridentification of the appropriate clock signal to be inserted within thepacket and in particular with regard to the intended receiving means.

The subject matter of claim 3 renders the invention particularlyadvantageous if the wireless network protocol requires, for anyparticular reason, a packet to be resent.

The features of claim 4 serve to make advantageous use of the appearanceof previous clock reference within a packet if a resend is required.

The features of claims 5, 6 and 7 offer particularly advantageous, butsimplified, means for identifying that a packet to be sent over thenetwork is to include clock reference data.

The features of claims 8, 9 and 10 prove advantageous for situations inwhich the transmitting means might be required to transmit differentstreams of data to the respective different receiving means, each ofwhich might require clock references running at slightly differentrates.

According to another aspect of the present invention, there is providedreceiving means for receiving signals delivered over a wireless networkand which include packets with clock reference data from a transmittingmeans for reconstruction of a clock reference at the receiving means,the receiving means including a front end comprising a wireless networkcontroller connected to operating system means, wherein the said frontend is arranged to identify clock reference data in a packet and tosynchronise a clock of the receiving means accordingly.

The features of claims 12 and 13 are advantageous in allowingreconstruction of the clock in a manner so as to minimise errors arisingtherein.

Advantageously, and as defined in claim 14, the operating system of thereceiving means can be arranged to identify data entering a particularsocket at the receiving means and so as to provide a particular reliableand accurate arrangement for identifying those data packets that alsoinclude clock data.

As defined in claims 15 and 16, the clock of the receiving means canadvantageously be set directly once identified at either the wirelessnetwork controller or the operating system therefore. Alternatively thereceiving means can include a feedback arrangement whereby a local clockvalue and frequency are altered to keep time with the incoming clockdata received from transmitting means over the wireless network.

According to a further aspect of the present invention, there isprovided a method including the step of synchronising a receiving meansto a clock of a transmitting means over a wireless network, thetransmitting means including processing means and operating system meansfor delivering data packets to the network of inserting at the wirelessnetwork controller clock reference data into identified packets andprior to delivery of the packets onto the wireless network.

The present invention also provides for a wireless network system ofsynchronising a receiving means to a clock of a transmitting means overa wireless network, the transmitting means including processing meansand operating system means for delivering data packets to the networkincluding the means for identifying data packets in which clockreference data is to be inserted and means for inserting at the wirelessnetwork controller clock reference data into the identified packets andprior to delivery of the packets onto the wireless network.

In accordance with another aspect of the present invention, there isprovided transmitting means for transmitting data packets in a wirelessnetwork, wherein at least some of the data packets are arranged toinclude clock data for use at receiving means in the network for clockreconstruction at the receiving means, the transmitting means includingprocessing means and operating system means connected to a networkcontroller for delivering the data packets to the network, and includingmeans for determining receipt at the receiving means of the data packetssent over the network and arranged to resend the packet if receipt isnot acknowledged, the network controller further being arranged toinsert updated clock reference data prior to resending a packet.

Advantageously, the updated clock reference is arranged to be insertedwithin the data packet in a manner as defined above.

In a further aspect of the present invention, there is provided a methodof synchronising the clock of a receiving means to a clock signal from atransmitting means in a wireless network, wherein the clock at thereceiving means is reconstructed from a data packet delivered from thetransmitting means and including the step of monitoring acknowledgementof receipt of the packet at the receiving means, and resending the saidpacket if receipt is not acknowledged, and including the step ofinserting updated clock reference data in the packet prior to resendingthe packet.

Advantageously, the step of inserting the updated clock reference datais conducted as defined above.

As should therefore be appreciated, the present invention provides for amethod and related system and apparatus for enhancing synchronizationbetween real-time clocks within a wireless network environmentparticularly if data packets containing clock reference data are to beresent.

The invention is described further hereinafter, by way of example only,with reference to the accompanying drawings in which:

FIG. 1 is a schematic block diagram of a currently known wirelessnetwork system illustrating a server and a client; and

FIG. 2 is a schematic block diagram of a wireless network systememploying a server and a client and embodying an aspect of the presentinvention.

Turning first to FIG. 1, there is illustrated a wireless networkcommunications system 10 arranged for use as part of a wireless networkas currently known and comprising a server 12 and client 14.

In order to achieve synchronisation between the server 12 and client 14,the client 14 seeks to reconstruct a clock signal corresponding to thatrunning at the server 12.

A transport stream input signal 16 is delivered to the server 12 to ademultiplexer 18 and clock regeneration element 20 for producing amemory mapped clock by means of which clock reference data is generatedfrom the input transport stream 16.

A processor 22 arranged to run wireless audio/video protocol software isalso arranged to receive the clock reference from the clock unit 20 andto insert the reference into an appropriate packet for onwardtransmission as a so-called clock packet. Thus, the software within theprocessor 22 is arranged to read the memory mapped clock at the clockunit 20 and to insert this information into a packet, which data is thenadded to the end of a variable length register such as a FIFO.

The clock packet is delivered from the processor 22 to an operatingsystem 24 which includes an IP networking stack.

A wireless network controller 26 is connected to the operating system 24by means of, for example of a PCI bus, or PI bus for onward deliveryover a wireless network link 28 to the client device 14.

It will be appreciated that there will therefore necessarily be somedelay between insertion of the clock reference into the packet at theprocessor 22, and the eventual delivery of the packet onto the wirelessnetwork 28 particularly in view of the variety of queues and registersthat are inherent in the connectivity between the processor 22 andindeed the operating system 24 and the wireless network controller 26.

As will be appreciated from the following description of the client 14,similar queues and registers as arising in the server 12 are foundwithin the connectivity inherent in the client 14 and which introducefurther latency with regard to the passage of the clock packet beforethe clock reference is eventually reconstructed.

Turning now to the client 14, it will be appreciated that thiscorresponds to the server 12, and including a wireless networkcontroller 30, operating system 32, a processor 34 and decoder 36 and aclock regeneration unit 38.

However, insofar as the client 14 is arranged to receive data from thewireless network link 28, it is the wireless network controller 30 thatis arranged to receive data for onward deliver through the client device14 via the operating system 32 and processor 34. A clock generation unit38 comprises a memory mapped clock system for establishment of a clocksignal of variable value and frequency and the decoders 36 are arrangedto operate under control of the memory mapped clock.

However, in this known system, the delays in latency discussed aboveprove disadvantageously limiting in seeking to reproduce the clock fromthe server 12 at the client 14.

Turning now to FIG. 2, there is illustrated a system arrangementembodying an aspect of the present invention and which includes similarelements at the server and client to those illustrated in FIG. 1. Thesame reference numerals have been employed where appropriate.

However, the configuration and control of these elements is quitedifferent and leads to the particular advantages inherent in the presentinvention.

In the configuration of the illustrated embodiment of the presentinvention in FIG. 2, it will be appreciated that the memory-mapped clockdata is not delivered from the clock unit 20 to the processor 22, butrather is delivered directly to the wireless network controller 26.Likewise, at the client device 14, the wireless network controller 30,or alternatively, the operating system 32 is arranged to establish theregenerated clock 36 directly rather than via the processor 34.

Returning to the client device 12, the processor 22 is arranged todeliver instructions to the operating system 24 and the wireless networkcontroller 26 that, in particular, identify the data packets that are tobe accompanied by clock reference data.

Upon receipt of such packets at the wireless network controller 26, thecontroller 26 reads memory-mapped clock data directly from the clockunit 20 and overwrites a particular location within the packet with theclock value. Thus, just before the wireless network controller 26 isabout to transmit a packet over the wireless connection 28, and whichhas been marked by the operating system as a “clock” packet, thewireless controller reads the memory-mapped clock 20 to obtain anup-to-date clock value for delivery over the wireless connection 28.This is true both for the case in which the packet is being sent for thefirst time or also if the wireless protocol requires the packet to beresent, for example due to failure of delivery of the packet whenoriginally sent. If the packet is being resent, then the clock data isadvantageously updated at the wireless network controller prior toresending.

The above-mentioned features allow for the clock reference data heldwithin a clock packet to remain very close to the clock running in theserver 12.

It should be appreciated that there are variety of ways in which aparticular packet can be marked as a so-called clock packet. One aspectcomprises an arrangement in which an application is determined to use asetting on a specific datagram socket and this dictates that all packetspassing through that particular socket should therefore be marked as adatagram. Such a setting can also serve to identify where within thepacket the wireless network controller 26 should write the clock data.As an alternative, the clock signal could be included withinout-of-banned data.

At the client device 14, although reconstruction of the clock could beachieved in a user-level application, it is noted that some jitter wouldstill arise due to the FIFO employed at the client.

As noted in the illustrated embodiment, the clock setting isadvantageously therefore achieved by the wireless network controller orby lower levels of the operating system 32. Further, not only is controlachieved through the operating system so as to identify which packetsare to contain clock data reference, the operating system can also bearranged to set an off-set and length within the packet into which theclock data reference is to be inserted.

The client 14 can be arranged to operate in a manner similar to theserver 12 insofar as the wireless network controller 30 or the operatingsystem 32 can be arranged to identify data entering a particular socketin the client system. Such data is therefore readily identified and theclient system clock then set to the new value. As illustrated in FIG. 2,the system clock in the client can be set directly although it should beappreciated that the feedback mechanism can be employed wherein aclock's value and frequency and adjusted to keep in time with theidentified incoming clock data.

The present invention is particular advantageous in that clockinformation is included within packets along with the data in, forexample, a one to one network. However, the invention could beadvantageously employed for use with multi-cast networks and in asituation where a server is streaming different streams to a largenumber of clients and, in particular, where the streams might requirerespective clock references running at slightly different rates. In thismanner, the packet can also contain a reference describing whichreal-time clock should be accessed for such packets.

Again, this can prove particularly advantageous in a situation where aserver might to required to stream different streams to a variety ofclients each of which requires a different clock reference from arespective different clock source.

As noted, the invention also advantageously allows for the updating ofclock reference data within signals that are being resent. Theappearance of previous, and now out of date, clock reference data withina packet to be resent can advantageously be employed within the wirelessnetwork controller as a means for identifying those packets that are tohave clock reference data introduced therein prior to transmission overthe wireless link.

It should be appreciated that the present invention is not restricted tothe details of the foregoing embodiment insofar as it can be employedfor use in any appropriate communication system requiring real-timeclock synchronisation with wireless network protocols.

1. Transmitting means (12) for transmitting data packets in a wirelessnetwork, wherein at least some of the data packets are arranged toinclude clock data for use at a receiving means (14) in the network forclock reconstruction at the receiving means (14), the transmitting means(12) including processing means (22) and operating system means (24)connected to a network controller (26) for delivering the data packetsto the network, wherein the transmitting means (12) is arranged toidentify packets arriving at the network controller (26) and whichrequire clock data, and wherein the network controller (26) is arrangedto insert the clock data within the said identified packet prior totransmission of the packet.
 2. Transmitting means as defined in claim 1wherein the network controller (26) is arranged to read a memory-mappedclock (20) in order to obtain the clock reference data.
 3. Transmittingmeans as claimed in claim 1 or 2 and arranged to insert clock referencedata into packets that are to be resent over the network. 4.Transmitting means as claimed in claim 1, 2 or 3 and arranged to employa setting on a datagram socket in order to identify a packet for theinclusion of clock reference data.
 5. Transmitting means as claimed inclaim 4 and arranged such that the setting on the datagram socketfurther identifies where within the packet the clock reference data isto be inserted.
 6. Transmitting means as claimed in any one of claims1-3 and arranged to deliver the clock signal as out-of-band data. 7.Transmitting means as defined in any one or more of claims 1-6, andarranged such that the clock reference is included within packets alongwith data to be transmitted over the network.
 8. Transmitting means asclaimed in any one or more of claims 1-7, and arranged to obtain clockreference data from a plurality of clocks running at different rates. 9.Transmitting means as claimed in claim 8 and arranged to include withina packet a reference identifying which of the plurality of clocks is tobe accessed for providing the clock reference data.
 10. Transmittingmeans as claimed in claim 9, wherein the operating system (24) isarranged to set an offset and length within a packet in which the clockreference data is to be inserted.
 11. Receiving means (14) for receivingsignals delivered over a wireless network and which include packets withclock reference data from a transmitting means (12) for reconstructionof a clock reference at the receiving means (14), the receiving means(14) including a front end comprising a wireless network controller (30)connected to operating system means (32), wherein the said front end(30, 32) is arranged to identify clock reference data in a packet and tosynchronise a clock (38) of the receiving means (14) accordingly. 12.Receiving means as claimed in claim 11, wherein the clock is arranged tobe set by means of the wireless network controller (30).
 13. Receivingmeans as claimed in claim 11, wherein the clock is arranged to be set bymeans of the operating system (32).
 14. Receiving means as claimed inclaim 11, 12 or 13 and arranged to identify data entering a particularsocket therein for identification of the clock reference data. 15.Receiving means as claimed in any one or more of claims 11-14, whereinthe clock is arranged to be set directly from the reconstructed clockdata.
 16. Receiving means as claimed in any one or more of claims 11-14,and including feedback means arranged to control alteration of a localclock on the basis of the recovered clock data.
 17. A method includingthe step of synchronising a receiving means (14) to a clock of atransmitting means (12) over a wireless network, the transmitting means(12) including processing means (22) and operating system means (24) fordelivering data packets to the network and including the step ofinserting, at the wireless network controller (26), clock reference datainto identified packets and prior to delivery of the packets onto thewireless network.
 18. A system (10) of synchronising a receiving means(14) to a clock of a transmitting means (12) over a wireless network,the transmitting means (12) including processing means (22) andoperating system means (24) for delivering data packets to the network,including means for identifying the data packets in which clockreference data is to be inserted and means for inserting, at thewireless network controller (24), clock reference data into theidentified packets and prior to delivery of the packets onto thewireless network.
 19. Transmitting means (12) for transmitting datapackets in a wireless network, wherein at least some of the data packetsare arranged to include clock data for use at receiving means (14) inthe network for clock reconstruction at the receiving means (14), thetransmitting means (12) including processing means (22) and operatingsystem means (24) connected to a network controller for delivering thedata packets to the network, and including means for determining receiptat the receiving means (14) of the data packets sent over the networkand arranged to resend the packet if receipt is not acknowledged, thenetwork controller (26) further being arranged to insert updated clockreference data prior to resending a packet.
 20. Transmitting means asclaimed in claim 19 and further comprising a transmitting means asclaimed in any one or more of claims 1 to
 10. 21. A method ofsynchronising the clock of a receiving means (14) to a clock signal froma transmitting means (12) in a wireless network, wherein the clock atthe receiving means (14) is reconstructed from a data packet deliveredfrom the transmitting means (12) and including the step of monitoringacknowledgement of receipt of the packet at the receiving means (14),and resending the said packet if receipt is not acknowledged, andincluding the step of inserting updated clock reference data in thepacket prior to resending the packet.
 22. A method as claimed in claim21, and further comprising the method as claimed in claim 17.